<?php

class StatusEnum
{
    public static function prefix()
    {
                return [
        // 用户 -----------------------------
        // 存管通用户绑卡注册
                    'L_USER_REG'        => 10,
        // 存管通企业用户绑卡注册
                    'L_USER_E_REG'      => 11,
        // 修改 交易密码
                    'L_USER_PWD'        => 12,
        // 绑定银行卡
                    'L_USER_BANKCARD'   => 13,
        // 解绑银行卡
                    'L_USER_UN_BANKCARD'=> 14,
        // 用户支付调账
                    'L_USER_REGULATING' => 15,

        // 平台 -----------------------------
        // 发放营销款(红包)
                    'L_PF_AWARD'        => 30,
                    // 发放营销款(站岗利息)
                    'L_PF_SUBSIDY'        => 31,
        // 标的 -----------------------------
        // 创建标的
                    'L_ITEM_PUB'        => 40,
        // 查询标的信息
                    'L_ITEM_QUERY'      => 41,
        // 确认放款
                    'L_ITEM_CONFIRM'    => 42,
        // 更新标的还款中状态
                    'L_ITEM_REPAYING'   => 43,
        // 还款预处理
                    'L_REFUND_PRE'      => 44,
        // 还款确认
                    'L_REFUND_CONFIRM'  => 45,

        // 交易 -----------------------------
        // 支付
                    'DEPOSIT'           => 60,
        // 投资
                    'INVEST'            => 61,
        // 企业用户支付
                    'DEPOSIT_BUSINESS'  => 63,

        // 提现
                    'CASH'              => 70,
        // 提现确认
                    'CASH_CONFIRM'      => 71,
        // 提现取消
                    'CASH_CANCEL'       => 72,
        // 企业用户提现
                    'CASH_BUSINESS'     => 73,
         //体验金
                    'EXPER_MONEY'       =>74,
                ];
            }

    /**
     * 支付业务类型
     */
    public static function detail()
    {
        return [
            'USER'       => '用户充值',
            'PLATFORM'   => '平台账户充值',
            'ENTERPRISE' => '企业账户充值',
        ];
    }

    /**
     * 请求发起端
     */
    public static function device()
    {
        return [
            // PC浏览器
            'PC'      => 'pc',
            // 移动端
            'MOBILE'  => 'mobile',
            // 安卓
            'ANDROID' => 'android',
            // IOS
            'IOS'     => 'ios',
            // 微信端
            'WECHAT'  => 'wechat',
            // 未知
            'NAN'     => 'NAN',
        ];
    }

    public static function type()
    {
        return [
            'IN_DEPOSIT' => '充值',
            'DE_CASH'    => '提现',
            'IN_AWARD'   => '奖励',
            'DE_INVEST'  => '投资',
            'IN_REFUND'  => '回款',
            'IN_TICKET'  => '加息券',
            'IN_EXPER'  => '体验标回款',
            'IN_CASH_CANCEL' => '取消提现',
        ];
    }

    public static function detail2()
    {
        return [
            'DEPOSIT'    => '账户充值',
            'CASH'       => '账户余额提现',
            'CASH_CANCEL'=> '取消账户余额提现',
            'AWARD'      => '红包激活',
            'INVEST'     => '理财项目投资',
            'REFUND_ACC' => '标的回款利息',
            'REFUND'     => '标的回款本金',
            'TICKET'     => '加息券收益',
            'SUBSIDY'     => '站岗利息',
        ];
    }

    public static function fund_field()
    {
        return [
            'MONEY_DEPOSIT' => '充值未投资',
            'MONEY_AWARD'   => '红包金额',
            'MONEY_RETURN'  => '回款本息',
            'MONEY_FREEZE'  => '冻结资金',
        ];
    }

    public static function pre()
    {
        return [
            'FREEZED'   => '已冻结',
            'UNFREEZED' => '已解冻',
            'FAIL'      => '冻结失败',
            'ERRPOR'    => '异常'
        ];
    }

    public static function CashStatus()
    {
        return [
            // 等待提现
            'WAIT'       => '等待提现',
            // 等待确认
            'CONFIRMING' => '待确认',
            // 已受理
            'ACCEPT'     => '已受理',
            // 正在出款
            'REMITING'   => '出款中',
            // 已暂停
            'PAUSE'      => '暂停',
            // 提现成功
            'SUCCESS'    => '提现成功',
            // 提现失败
            'FAIL'       => '提现失败',
            // 取消提现
            'CANCEL'     => '取消提现',
            // 取消提现
            'ACCEPT_FAIL'=> '取消提现2',

        ];
    }

    /**
     * 创建交易订单号码
     */
    public static function buildNumber($prefix)
    {
        $tradePrefix = self::prefix();
        if (!array_key_exists($prefix, $tradePrefix))
        {
            return false;
        }


        // 订单索引表
        $idx = DB::table('trade_idx')->insertGetId(['auto_id'=>'']);
        if (!$idx)
        {
            return false;
        }

        // 订单号=订单类型+交易索引+4位随机数
        return $tradePrefix[$prefix].$idx.rand(1000, 9999);
    }
}
